/*
 * @Author: szx
 * @Date: 2022-03-09 21:04:11
 * @LastEditTime: 2022-03-10 19:08:47
 * @Description:
 * @FilePath: \MDN_JS学习\测试\宏任务微任务.js
 */
console.log(1);
setTimeout(() => {
    console.log(2);
    Promise.resolve().then(() => {
        console.log(3);
        process.nextTick(function foo() {
            console.log(4);
        });
    });
});
Promise.resolve().then(() => {
    console.log(5);
    setTimeout(() => {
        console.log(6);
    });
    Promise.resolve().then(() => {
        console.log(7);
    });
});

process.nextTick(function foo() {
    console.log(8);
    process.nextTick(function foo() {
        console.log(9);
    });
});
console.log(10);

// setTimeout(() => {
//     console.log('setTimeout1');
// });

// Promise.resolve().then(() => {
//     console.log('promise1');
// });

// setTimeout(() => {
//     console.log('setTimeout2');
// });

// Promise.resolve().then(() => {
//     console.log('promise2');
// });

// Promise.resolve().then(() => {
//     console.log('promise3');
// });

// console.log('script end');

// console.log(1);
// process.nextTick(() => {
//     console.log(8);
//     setTimeout(() => {
//         console.log(9);
//     });
// });
// setTimeout(() => {
//     console.log(2);
//     new Promise(() => {
//         console.log(11);
//     });
// });
// let promise = new Promise((resolve, reject) => {
//     setTimeout(() => {
//         console.log(10);
//     });
//     resolve(); // 这个console也属于主线程任务
//     console.log(4);
// });
// fn();
// console.log(3);
// promise.then(() => {
//     console.log(12);
// });
// function fn() {
//     console.log(6);
// }
